//
//  QWUploadConfig.h
//  WJUpload-master
//
//  Created by 吴云海 on 15-12-27.
//  Copyright (c) 2015年 WJ. All rights reserved.
//

#import "AbstractQWBusinessObject.h"
#import "QWSingleton.h"
#import "IQWUploadHandler.h"
#import "IQWUploadResultHandler.h"
#import "IQWUploadDataStorage.h"
#import "IQWUploadDataProvider.h"

@interface QWUploadConfig : AbstractQWBusinessObject

AS_SINGLETON(QWUploadConfig)

/**
 *  上传处理器
 *  key:uploadDataType value:Handler Class
 *  必须实现 IWJUploadProcessor 接口
 */
@property (nonatomic, readonly) NSDictionary *uploadHandlers;

/**
 *  结果处理器
 *  key:uploadDataType value:Handler Class
 *  必须实现 IQWUploadResultHandle 接口
 */
@property (nonatomic, readonly) NSDictionary *resultHandlers;

/**
 *  数据提供者
 *  必须实现 IQWUploadDataProvider 接口
 *  key:dataProviders value:weight
 *  weight=0 标示一直上传知道结束才会上传其他数据提供者
 */
@property (nonatomic, readonly) NSDictionary *dataProviders;

/**
 *  数据储存
 *  必须实现 IQWUploadDataStorage 接口
 */
@property (nonatomic, readonly) NSDictionary *dataStorages;


-(void) setUploadHandlers:(NSDictionary *)uploadHandlers;

-(void) setResultHandlers:(NSDictionary *)resultHandlers;

-(void) setDataProviders:(NSDictionary *)dataProviders;

-(void) setDataStorages:(NSDictionary *)dataStorages;

@end
